Zum Hauptinhalt springen

Bedingungen (4)

In diesem Folder werden die Bedingungen des Query erstellt. Grundsätzlich sind die Bedingungen von OpenEdge Progress einzuhalten.

alt text

WertBeschreibung
gewählte DB TabellenHier werden alle ausgewählten DB-Tabellen angezeigt, auch diejenigen aus der zu Grunde liegenden Selektions-Vorgabe
DB-IndexHier werden die Datenbank-Indexe zur angewählten Tabelle angezeigt im Format
Indexname: feld1 + feld2 + ...
Es ist wichtig, dass wenn immer möglich die Bedingungen so formuliert werden, dass nach Möglichkeit ein Index verwendet werden kann; andernfalls kann es bei Tabellen-Verknüpfungen zu endlosen Selektionsläufen kommen.
Besonders zu beachten ist, dass die meisten Tabellen an erster Stelle die Firma haben und dieses Feld auch unbedingt bei der WHERE-Klausel verwendet wird, unabhängig davon ob in der Datenbank mehrere Firmen vorhanden sind!
DB-TabelleBeschreibung der Tabelle gemäss Datenbank Schema
DB-FelderAnzeige der Felder zur angewählten Tabelle. Diese Felder können in der Where-Klausel verwendet werden
DB-FeldBeschreibung des Feldes gemäss Datenbank Schema
Buttons für BedingungenMit diesen Buttons können Bedingungen in der Where-Klausel eingefügt werden:

alt text
Where-KlauselBedingungen können gemäss Regeln von OpenEdge Progress verwendet werden; es können auch die definierten Platzhalter verwendet werden.
Ausser bei der ersten Bedingung zu einer Tabelle muss immer zuerst eine Bedingung UND oder OR angewählt werden.
Zu beachten ist, dass für zusätzliche Bedingungen zu Tabellen aus einer Selektions-Vorlage immer mit einem dieser Schlüsselwörter beginnen muss.
Die Erfassungsreihenfolge pro Zeile ist deshalb normalerweise:
1. AND / OR (ausser bei erster Bedingung zu einer Tabelle)
2. erster Feldname für Vergleich
3. Vergleichsbedingung (> , < , ...)
4. zweiter Feldname oder konstanter Wert
Nach Erfassung der Bedingung kann in einem Zusatzfenster erfasst werden:
- Konstanter Wert
- Platzhalter via Button Platzhalter
- Bei Datum-Felder kann mit TODAY +/- Anzahl Tage gearbeitet werden
- Bei Feld Firma: Mandant = aktueller Mandant
- Beliebiges verknüpftes DB-Feld nach Eingabe von 'Abbruch'

Bei Bedarf kann unmittelbar nach dem Tabellen-Name der gewünschte Index angegeben werden mit USE-INDEX Indexname; dies ist notwendig, wenn die automatische Auswahl den falschen Index verwendet und somit lange Selektionen produziert. Dies ist z.B. bei Zugriff auf die Tabelle abo der Fall wenn in der Bedingung sowohl das Feld artnr wie auch vorgnr verwendet wird; hier wird normalerweise mit key artkey gesucht, was sehr lange Laufzeiten gibt im Vergleich zu Vorgnummer

Beispiel in WHERE-Clause:
faros.abo USE-INDEX kundkey WHERE abo.firma = Mandant AND ...
Grundsätzlich sind alle Indexe ersichtlich im Feld DB-Index.
Buttons zu Where-Klauselalt text